# _*_coding:utf-8 _*_
# @Time    :2022/3/22 19:39
# @Author  :gxp
# @FileName: MaxArrayNum.py
# @Software: PyCharm

'''
1.首先最大子数组的第一个数一定是正数，所以找到第一个正数才开始操作
2.在遍历的过程中，只要前面数字和后面几个数字的和大于0 则是在最大数组中的，因此需要将数字加进去
3.每次遍历中将暂存的数和最大数进行比较

'''
#数组最大子数组之和
def MaxNum(list):
    #最大数
    maxNum = list[0]
    #暂存的数
    num = 0
    for i in list:
        if num < 0:
            num = i
        else:
            num += i
        if num > maxNum:
            maxNum = num
    return maxNum



if __name__ == '__main__':
    list = [1,-5,20,-9,3,-2]
    print(MaxNum(list))
